#include <iostream>
#include "Permutation.h"

Permutation::Permutation(void)
{
}

Permutation::~Permutation(void)
{
}

void Permutation::Clear()
{
	path.clear();
	points.clear();
}

void Permutation::InitPoints( int numPoints, float winwidth )
{
	//gNumPoints=numPoints;
	float totalLineLength = winwidth-100;
	float step = totalLineLength/(numPoints-1);
	
	AddPoint( -(winwidth/2 - 50), 0 );

	std::cout << "point 0 [" << points[0].x << "," << points[0].y << "]" << std::endl;
	
	for(int i=1; i<numPoints; i++)
	{
		//points[i].x = points[i-1].x + step;
		//points[i].y = 0;
		AddPoint( points[i-1].x + step, 0 );
		std::cout << "point " << i << "[" << points[i].x << "," << points[i].y << "]" << std::endl;
	}	
}

void Permutation::AddPoint( float x,float y )
{
	Point p = {x,y};
	points.push_back(p);
}

// bool Permutation::Load( std::string filename )
// {
// 	std::ifstream input;
// 	std::string line;
// 	int numPoints=0;
// 	int numArches=0;
// 	input.open(filename.c_str());
// 
// 	if (input.is_open())
// 	{
// 		// file is open
// 		// reset variables and load new ones
// 		
// 		path.clear();
// 		points.clear();
// 
// 
// 		while (!input.eof())
// 		{
// 			getline(input,line);
// 			std::cout << line << std::endl;
// 
// 			if(line[0]=='#')
// 				continue;	// skip comments
// 
// 			if (0==line.compare("[points]"))
// 			{
// 				input >> numPoints;
// 				std::cout << "num points = " << numPoints << std::endl;
// 				continue;
// 			}
// 
// 			if (0==line.compare("[arches]"))
// 			{
// 				input >> numArches;
// 				std::cout << "num arches = " << numArches << std::endl;
// 				continue;
// 			}
// 
// 			if (0==line.compare("[path]"))
// 			{
// 
// 				for (int i=0; i<=gNumArches; i++)
// 				{
// 					input >> path[i];
// 				}
// 
// 				std::cout << "the path: ";
// 				for (int i=0; i<=gNumArches; i++)
// 				{
// 					std::cout << path[i] << " ";
// 				}
// 				std::cout << std::endl;
// 
// 				continue;
// 			}
// 
// 			if (0==line.compare("[vertical line after point]"))
// 			{
// 				bDrawVerticalLine=true;	
// 				input >> gVertLinePoint1;
// 				std::cout << "vertical line will be draw after point " << gVertLinePoint1 << std::endl;
// 				continue;
// 			}
// 
// 		}
// 		input.close();
// 	}
// 	else
// 	{
// 		std::cout << "COuld not open file..." << std::endl;
// 	}
// 
// 	initPoints();
// }